package tictactoe.gameplay;

import tictactoe.types.*;

/**
 *
 * @author Ryan Falls
 */
public abstract class Player
{

    protected CellState playerSymbol;

    public CellState GetPlayerSymbol()
    {
	return this.playerSymbol;
    }

    /**
     * Makes a move based on the current state of the tic-tac-toe board,
     * as determined by the cellStates array.
     * @param cellStates An array of CellState objects indicating the current
     * status of the board.
     * @return An int indicating the space where the move was made. Returns
     * -1 if it can't make a move.
     */
    public abstract int MakeMove(CellState[] cellStates);

    /**
     * Test to see if this is a computer or a human,
     * @return True if it is a computer, false if it is a human.
     */
    public abstract boolean isCPU();
}
